package com.boarsoft.boar.message.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.boarsoft.boar.message.entity.RecipientQueueEntity;
import com.boarsoft.boar.message.entity.TargetQueueEntity;
import com.boarsoft.message.bean.MessageEntity;
import com.boarsoft.message.bean.TargetQueueInfo;

public interface MsgServerService {
	/**
	 * 供message-server检查当前message-web是否有效
	 */
	boolean test();

	/**
	 * 获取target队列列表
	 * 
	 * @return
	 */
	List<TargetQueueEntity> getTargetQueues();

	/**
	 * 获取recipient队列列表
	 * 
	 * @return
	 */
	List<RecipientQueueEntity> getRecipientsQueues();

	/**
	 * 获取队列列表
	 * 
	 * @param addr
	 * @return
	 */
	List<TargetQueueInfo> getQueueInfo(String addr);

	/**
	 * 获取队列消息列表
	 * 
	 * @param target
	 * @param addr
	 * @param messageId
	 * @param startTime
	 * @param endTime
	 * @param status
	 * @param key
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	List<MessageEntity> list(String target, String addr, String messageId, Date startTime, Date endTime, Short status,
			String key, int pageNo, int pageSize);

	/**
	 * 统计各状态消息总数
	 * 
	 * @param target
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<Map<String, Object>> count(String target, Date startTime, Date endTime);

	/**
	 * 返回消息中心Broker列表
	 * 
	 * @return
	 */
	List<Map<String, Object>> list();

}